Micron Document
NexusPi Git Node

Commit 7eab3f9958a08b6ac9a1ef8ccb4ed2444f2b6845


Parents : bac9ea9
Author : James L <jrl290@gmail.com>
Date : 2026-04-26T20:13:29-04:00

Web flasher: use merged binary for both modes; mirror flash.py decision tree

- Update mode: merged bin flashed at offset 0x10000 (app region only)
mirrors flash.py's extract_app_from_merged() path
- First Install mode: merged bin flashed at 0x0000 (full image)
- No separate app-only bins needed in release — merged bin serves both
- Mode descriptions now reflect flash.py's exact decision criteria

Changes

3 files changed, 11 insertions(+), 11 deletions(-)


Diff

diff --git a/docs/index.html b/docs/index.html
index 658785e..4fbe08b 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -290,9 +290,9 @@
</div>
<p id="flash-desc">
- Plug your device into USB, then click the button below. Only the
- application is flashed &mdash; bootloader, partition table, and all
- saved settings (LoRa config, identity, WiFi) are left untouched.
+ Writes only the application region (0x10000).
+ Bootloader, partition table, and all saved settings (LoRa config, identity, WiFi) are left untouched.
+ Use this when your device already has RTNode firmware installed.
</p>
<esp-web-install-button id="install-btn" manifest="manifest-v3.json">
@@ -361,12 +361,12 @@
let currentBoard = 'manifest-v3.json';
let currentIsUpdate = true;
- const UPDATE_DESC = "Plug your device into USB, then click the button below. Only the " +
- "application is flashed \u2014 bootloader, partition table, and all " +
- "saved settings (LoRa config, identity, WiFi) are left untouched.";
- const FULL_DESC = "\u26A0\uFE0F First-time install: the full firmware image is written from offset 0x0. " +
- "This is required for new devices or to recover a bricked node. " +
- "All existing settings will be erased.";
+ const UPDATE_DESC = "Writes only the application region (0x10000). " +
+ "Bootloader, partition table, and all saved settings (LoRa config, identity, WiFi) are left untouched. " +
+ "Use this when your device already has RTNode firmware installed.";
+ const FULL_DESC = "\u26A0\uFE0F Writes the full image from offset 0x0, replacing bootloader, partition table, and app. " +
+ "All existing settings will be erased. " +
+ "Required when: the device is blank, has mismatched partition layout, or has no app installed.";
function updateButton() {
const manifests = BOARDS[currentBoard];

diff --git a/docs/manifest-v3.json b/docs/manifest-v3.json
index f84b1d5..b83fcea 100644
--- a/docs/manifest-v3.json
+++ b/docs/manifest-v3.json
@@ -5,7 +5,7 @@
"chipFamily": "ESP32-S3",
"parts": [
{
- "path": "https://github.com/jrl290/RTNode-HeltecV4/releases/latest/download/rnode_firmware_heltec32v3.bin",
+ "path": "https://github.com/jrl290/RTNode-HeltecV4/releases/latest/download/rnode_firmware_heltec32v3_merged.bin",
"offset": 65536
}
]

diff --git a/docs/manifest-v4-16mb.json b/docs/manifest-v4-16mb.json
index 143fc03..434d6dd 100644
--- a/docs/manifest-v4-16mb.json
+++ b/docs/manifest-v4-16mb.json
@@ -5,7 +5,7 @@
"chipFamily": "ESP32-S3",
"parts": [
{
- "path": "https://github.com/jrl290/RTNode-HeltecV4/releases/latest/download/rnode_firmware_heltec32v4_boundary_16mb.bin",
+ "path": "https://github.com/jrl290/RTNode-HeltecV4/releases/latest/download/rnode_firmware_heltec32v4_boundary_16mb_merged.bin",
"offset": 65536
}
]

Served by rngit 1.4.2 - Generated in 0.02s